//package com.ycy.lucene.collector;
//
//import com.ycy.lucene.index.IndexCreateDemo;
//import org.apache.lucene.document.Document;
//import org.apache.lucene.index.*;
//import org.apache.lucene.search.*;
//import org.apache.lucene.store.FSDirectory;
//
//import java.io.IOException;
//import java.nio.file.Path;
//import java.nio.file.Paths;
//import java.util.ArrayList;
//import java.util.List;
//
//public class CollectorDemo implements Collector, LeafCollector {
//  /**
//   * 评分计算器
//   */
//  private Scorer scorer;
//  /**
//   * 段文件的编号
//   */
//  private int docBase;
//
//  private String fieldName;
//
//  private SortedDocValues sortedDocValues;
//
//  private List<ScoreDoc> scoreDocs = new ArrayList<ScoreDoc>();
//
//
//  @Override
//  public LeafCollector getLeafCollector(LeafReaderContext context)
//          throws IOException {
//    this.sortedDocValues = context.reader().getSortedDocValues(fieldName);
//    return this;
//  }
//
//
//  public CollectorDemo(String fieldName) {
//    super();
//    this.fieldName = fieldName;
//  }
//
//  @Override
//  public boolean needsScores() {
//    return false;
//  }
//
//  @Override
//  public void setScorer(Scorer scorer) throws IOException {
//    this.scorer = scorer;
//  }
//
//  @Override
//  public void collect(int doc) throws IOException {
//    // scoreDoc:docId和评分
//    this.scoreDocs.add(new ScoreDoc(this.docBase + doc, this.scorer.score()));
//  }
//
//
//  public List<ScoreDoc> getScoreDocs() {
//    return scoreDocs;
//  }
//
//  public static void main(String[] args) throws IOException {
//    Path path = Paths.get(IndexCreateDemo.indexpath);
//    IndexReader indexReader = DirectoryReader.open(FSDirectory.open(path));
//    IndexSearcher isearch = new IndexSearcher(indexReader);
//    TermQuery termQuery = new TermQuery(new Term("name", "脱"));
//    CollectorDemo collector = new CollectorDemo("id");
//    isearch.search(termQuery, collector);
//    List<ScoreDoc> docs = collector.getScoreDocs();
//    for (ScoreDoc scoreDoc : docs) {
//      int docID = scoreDoc.doc;
//      Document document = isearch.doc(docID);
//      System.out.println(scoreDoc.doc + ":" + document.get("id") + "  " + scoreDoc.score);
//    }
//
//    indexReader.close();
//  }
//
//
//}